package com.bd.scm.dao.mapper.place;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.bd.scm.domain.models.place.DtAcDep;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface DtAcDepMapper extends BaseMapper<DtAcDep> {
    /**
     * 获取指定ID向上递归的场所名称字符串.
     *
     * @param depSerial 场所id
     * @return 场所名称字符串
     */
    String getRecursionNameByID(Long depSerial);

    /**
     * 获取指定类型的dep_number最大值.
     *
     * @param depLx 场所类型
     * @return 场所dep_number最大值.
     */
    String getMaxNumber(Integer depLx);

    /**
     * 获取指定场所的子数据depOrder最大值.
     *
     * @param depSerial 场所ID
     * @return 指定场所的子数据depOrder最大值.
     */
    Integer getMaxOrderByDepParent(Long depSerial);

    /**
     * 新增场所.
     *
     * @param dtAcDep
     */
    void savePlace(DtAcDep dtAcDep);

    /**
     * 根据depNo修改depNo.
     *
     * @param jsonObject 包含新depNo和旧的depNo.
     */
    void updateDepNoByDepNo(JSONObject jsonObject);

    /**
     * 根据id修改depNo.
     *
     * @param list
     * @param oldDepNo
     * @param newDepNo
     */
    void updateDepNoByIds(@Param("list") List<Long> list, @Param("oldDepNo") String oldDepNo, @Param("newDepNo") String
            newDepNo);

    /**
     * 根据ID查询其子场所ID.
     *
     * @param depSerial
     * @return
     */
    List<Long> getRecursionIdByParentId(Long depSerial);

}